package de.schule.barnimgymnasium.autotransporter.spiele;

import de.schule.barnimgymnasium.autotransporter.Lautsprecher;
import de.schule.barnimgymnasium.autotransporter.Stellplatz;
import de.schule.barnimgymnasium.autotransporter.Transporter;

public class SpielVerteiler implements SpielEventListener {
	Transporter transporter;
	Lautsprecher lautsprecher;
	int zuletztGedrueckterKnopf = 1;
	Spiel aktuellesSpiel = null;

	public SpielVerteiler(Transporter t) {
		transporter = t;
		lautsprecher = t.getLautsprecher();
	}

	@Override
	public void knopfGedrueckt(int knopfnummer) {
		if (aktuellesSpiel != null)
			aktuellesSpiel.stop();
		zuletztGedrueckterKnopf = knopfnummer;
		aktuellesSpiel = starteSpiel(zuletztGedrueckterKnopf);
	}

	@Override
	public void einOderAusSchalten(boolean status) {
		if (status == true) {
			lautsprecher.say(Lautsprecher.HALLO);
		} else {
			lautsprecher.say(Lautsprecher.TSCHUESS);
		}
	}

	@Override
	public void stellplatzGeaendert(Stellplatz s) {
		if (aktuellesSpiel == null)
			return;
		aktuellesSpiel.stellplatzGeaendert(s);
	}

	Spiel starteSpiel(int nummer) {
		Spiel ret = null;
		switch (nummer) {
		case 0:
			ret = new MotorGeraeusch(transporter);
			break;
		case 1:
			ret = new FarbSpiel(transporter);
			break;
		case 2:
			ret = new ZaehlSpiel(transporter);
			break;
		case 3:
			ret = new GeraeuschSpiel(transporter);
			break;
		case 4:
			// ret = new SpielSpiel(transporter);
			break;
		default:
		}
		return ret;
	}
}
